如果您已經讀到這里,我假設您已經知道定期備份 MongoDB 數據庫以防止任何數據丟失的重要性。許多人主要關心的是決定將這些備份保存在何處,尤其是在處理需要大量存儲空間的大型數據庫時。對象存儲因其可擴展性和成本效益而成為強烈推薦的解決方案。
本文將演示如何使用命令行執行MongoDB 數據庫的備份并將它們存儲在與Contabo S3 兼容的對象存儲中。這是可以實現的原因是因為 Contabo 對象存儲與 Amazon Web Services 命令行界面 (AWS CLI) 兼容。
您可能會注意到本指南比在線提供的其他指南短得多,但這是因為使用 AWS CLI 配置 Contabo 對象存儲很容易。此外,S3 兼容性允許將備份文件從 Linux 服務器簡單地傳輸到對象存儲。如果您不熟悉 Contabo 對象存儲,可以單擊此處了解更多信息。
為了執行 MongoDB 數據庫的備份,需要以下內容:
先決條件/要求
要執行 MongoDB 數據庫的備份,您需要以下內容:
- 兼容 S3 的對象存儲
- 您的訪問密鑰
- 你的秘鑰
- 您的 S3 網址
- AWS CLI 已經安裝(并配置)在運行 MongoDB 數據庫的服務器上
如果您在服務器上安裝和配置 AWS CLI 時需要幫助,您可以參考此鏈接提供的文檔。
創建數據庫的備份
要將您的 MongoDB 數據庫備份傳輸到您的對象存儲,您必須首先創建一個本地備份。幸運的是,這可以使用 MongoDB 的內置命令來實現:
mysqldump –u [username] -p[password] [database_name] > backup.sql
此過程的持續時間將根據數據庫的大小而有所不同。您應該將[username]和[password]替換為您的 MongoDB 實例的登錄憑據,并將[database_name]替換為您希望備份的特定數據庫的名稱。文件名“?backup.sql?”表示備份文件的名稱,但如果您愿意,可以選擇不同的名稱。
上傳您的數據庫備份
使用后續命令將本地創建的數據庫備份傳輸到 Contabo 對象存儲:
aws --profile eu2 --region default --endpoint-url [your_s3_url] s3 cp [name_of_your_backup_file] s3://[bucket_name]
使用 Cron 計劃定期數據庫備份
要為特定數據庫設置定期備份,您必須完成兩項任務:
1. 創建一個 Shell 腳本
初始步驟涉及創建一個 shell 腳本,該腳本生成指定數據庫的本地備份,然后使用 AWS CLI 將其傳輸到 Contabo Object Storage。
要創建此腳本,請使用以下命令:
nano 數據庫到 os.sh
并添加以下內容:
#!/bin/bash mysqldump –u [username] -p[password] [database_name] > backup.sql aws --profile eu2 --region default --endpoint-url [your_s3_url] s3 cp [name_of_your_backup_file] s3://[bucket_name]
使用[CTRL]?+?O保存腳本并使用[CTRL]?+?X??退出編輯器
現在使用此命令使腳本可執行:
chmod +x database-to-os.sh
2.編輯crontab文件
現在打開 Crontab 文件,您可以在其中使用以下命令安排備份:
crontab -e
并粘貼以下內容:
0 3 * * * /[path_to_script]/databse-to-os.sh
該腳本被編程為每天凌晨 3:00執行數據庫備份。如果您喜歡不同的時間表,您可以相應地修改腳本。有關 Cron 語法的其他信息可以在文件本身中找到。
結論
總之,使用 AWS CLI 將 MongoDB 數據庫備份到對象存儲是一種直接有效的方法,可以為有價值的數據增加額外的安全層。通過使用 AWS CLI 和本文提供的命令,用戶可以高效地自動執行備份過程、安排定期備份并將備份安全地存儲在對象存儲中。